So we have a fair number of moving parts here.
Lest start with the coupon. The coupon is the annual interest paid on the bond (usually twice a year) to the bond holder to reward them for loaning the bond writer the cash.
Example, this is a brand new US 30-year treasury that just got sold at the auction 2 days ago. Notice the coupon is 4.125%. This means the bond holder will be paid 4.125% of the face value of the bond annually (in two payments every six months). So if you bought a $1000 bond, you would get paid $41.25 annually (split in two payments every six months) for the next 30 years. At maturity in 30 years, the gubmint would pay you your $1,000 back and redeem the bond. You also have the $1,237.50 in coupon payments.
Some short term Treasury notes dont have coupon payments. They just sell the bond at a discount to face value. For example a 1-year zero coupon US Treasury note offered at 5% would be sold to you at $950 for a $1,000 note and in 1 year they would pay you the full face value of $1,000 so you made 5% interest on the note.
Now a curve ball comes in when you start looking at bonds being sold not at a new auction but on the secondary market. They dont have the full length of time left to run to receive coupon payments so the seller adjusts the sale price to make it up. thats why you see "used" bonds being sold for less than par (face value).
Going back to that 1-year zero coupon example, if you bought from someone 6 months after it was issued, they might sell it to you for $975 (2.5% interest rate) because you are only holding it for 6 months and not a full year. So half the interest rate it was issued at.
So why buy bonds? Security over time.
People in 1995 bought 30-year Treasuries paying a coupon of 7.625% and they have been paid that same 7.625% interest every year for 30 years. If they gubmint offered a 30-year treasury tomorrow at 7.625%. I would back a truck up to buy them. The current 4% or so doesnt do it for me.
"Normally" the longer the time you loan the money, the higher the return. But... we are currently operating in an inverted yield curve environment. So the shorter debt is paying a higher rate than the longer debt. Sounds odd? Its because people believe interest rates are going to keep going up and dont want to tie up their money in longer term debt when the next debt issued might pay a higher rate. So right now, 3-month and 6-month Treasury notes are yielding over 5%. You can buy zero coupon Treasury notes expiring in Feb and they are returning 5+% annual interest so holding for 6 months gives you roughly $26.43 per $1,000 bond (Purchase price of $97.357 per $100 face value). Just like stocks you can see the bid and the ask spread and this is where market makers can make their money. Its in fractions of pennies but they dollar amounts of bonds involved make it real money.
This is the current Buffett strategy. He is cycling the Berkshire cash piles into 3 and 6 month treasuries and is just recycling them for now. When a bond expires, he just buys some more and isnt tying up cash for long periods of time. He is content to make the interest while he waits.
That should cover some basics.